package httpserver

type Middleware func(ctx *Ctx, next func(ctx *Ctx))

//处理中间件
var handlerMiddleware = func(f HttpRouteFunc, middleware []Middleware) func(ctx *Ctx) {
	funcArr := []func(*Ctx){}

	funcArr = append(funcArr, func(ctx *Ctx) {
		f(ctx)
	})

	//新增中间件的处理
	j := 0
	for i := len(middleware) - 1; i >= 0; i-- {
		index := i
		t := j
		funcArr = append(funcArr, func(ctx *Ctx) {
			middleware[index](ctx, funcArr[t])
		})
		j++
	}

	return funcArr[len(funcArr)-1]
}
